Day 7 做完之後,Visual Learning Lab 已經第一次可以根據教材內容,自動在 Visual Flow 和 Concept Map 之間做選擇。
像 Sinusoids 這種偏概念關係的內容,會用 Concept Map;Laplace Transform 這種有明確步驟的內容,則會用 Visual Flow。
做到這裡之後,我開始覺得整個方向有比較清楚。
我不想做一個「輸入教材 → 固定吐出某一種圖」的工具。
我比較想做的是:
教材
↓
AI 理解內容
↓
判斷內容的結構
↓
選擇適合的呈現方式
但現在其實還少了一種很常見的學習情境。
就是:
比較。
像:
感應馬達 vs 同步馬達
串聯電路 vs 並聯電路
sine vs cosine
方法 A vs 方法 B
這種內容如果硬塞成 Flow 很怪,做 Concept Map 又不一定最好懂。
所以 Day 8 我加了第三種真的可以被 AI 選中的視覺化:
Comparison。
一開始看起來好像很簡單。
如果教材裡有 A 和 B,那就畫一個比較表。
但想一下就會發現這樣不行。
例如一份教材同時提到:
Sinusoids
Phasors
Impedance
Admittance
不代表它就在「比較」這四個東西。
所以我沒有讓程式只要看到兩個概念就自動選 Comparison。
現在 AI 判斷 Comparison 的條件比較像:
這份內容的主要理解方式,是不是來自「並排看差異」?
像是:
如果這些才是教材的主要結構,才選 Comparison。
所以目前 primary visualization 開始變成:
primary_visualization
flow
concept_map
comparison
none
其中:
有明確步驟
→ Flow
概念彼此關聯
→ Concept Map
差異與對照最重要
→ Comparison
前幾天做 Flow 的時候,我已經踩過一個坑。
如果直接把 Relationships 拿去畫圖,很容易變成「每一條關係 individually 都是對的,但整張圖很亂」。
所以從 Day 7 開始,我已經不再讓所有 visualization 共用 Relationships。
Day 8 的 Comparison 也一樣有自己獨立的 Structured Output。
大概長這樣:
comparison
├─ suitable
├─ reason
├─ title
├─ items
├─ criteria
└─ takeaway
items 是要拿來比較的東西。
criteria 則是比較的維度。
例如:
三相感應馬達
同步馬達
可能會用:
轉子轉速
轉差需求
轉子磁場來源
結構與控制
典型應用
來比較。
我也限制每個 criterion 都要有每個 item 對應的內容。
不然就很容易變成:
A 有資料
B 空白
C 又突然多一個奇怪的欄位
這種看起來就不像真正的比較表。
這次我先不拿 PDF。
直接貼一小段文字,內容是三相感應馬達與同步馬達的差異。
主要寫到:
按下 Visualize 之後,這次 AI 沒有選 Concept Map,也沒有選 Flow。
而是真的選了:

最後生成的表格大概是:
Criterion 三相感應馬達 同步馬達
轉子轉速 通常低於同步轉速 等於同步轉速
轉差需求 需要轉差 正常穩態下沒有轉差
轉子磁場來源 感應電流 直流激磁或永久磁鐵
結構與控制 較簡單、耐用 通常較複雜
典型應用 工業驅動 固定轉速需求
這次我覺得效果滿直接的。
因為如果把這段內容畫成 Concept Map,雖然也不是不行,但使用者還是要自己沿著線找:
到底兩個馬達哪裡不一樣?
Comparison 則直接把這件事放到畫面中央。
Comparison 下面我還加了一個 Takeaway。
但我不希望它變成:
感應馬達比較好。
或:
同步馬達比較優秀。
因為很多比較其實沒有 winner。
這次 AI 回的重點比較像:
感應馬達需要靠轉差產生轉子感應電流與轉矩;同步馬達則在正常穩態下以同步轉速運轉、沒有轉差。前者通常較簡單耐用,後者則適合固定轉速等需求。
這樣我覺得比較合理。
Comparison 的目的應該是:
讓差異變清楚。
不是幫使用者亂選一個答案。
Comparison 本身第一次測試其實很順。
但我重新把前幾天的教材丟回去做 regression test 時,出現了一件很有趣的事。
Sinusoids:
→ Concept Map
正常。
馬達比較:
→ Comparison
也正常。
但是 Laplace Transform:
→ Concept Map
等等。
它前一天明明已經很穩定地選 Flow。

而且這張 Concept Map 本身其實沒有做錯。
它真的有抓到:
Laplace Transform
Integral Transform
Inverse Transform
ODE Solution Method
Integral Formula
Kernel
這些概念。
問題是:
這不是這份教材最值得優先看到的東西。
因為這幾頁其實有一個非常明確的 ODE 解題流程。
也就是:
Given ODE
↓
Laplace Transform
↓
Algebraic equation
↓
Solve algebraically
↓
Inverse Transform
↓
Solution
所以這次出現了一個更有意思的問題。
以前我想得比較簡單。
我以為:
某份教材
→ 一定有一個明確類型
但真的測之後才發現不是。
Laplace Transform 當然可以做 Concept Map。
因為它也有一堆重要概念:
f(t)
F(s)
kernel
inverse transform
integral transform
但同時它又有一個很重要的解題流程。
那到底應該選哪一個?
這時候真正要問的其實不是:
「它能不能畫成 Concept Map?」
而是:
「哪一種圖最能幫助使用者先理解這份內容?」
所以我又調整了一次 visualization selection 的判斷。
現在如果教材裡存在一條:
的流程,那 Flow 會有比較高的優先權。
例如:
problem
↓
transformation
↓
intermediate result
↓
final result
即使同一份教材裡還有很多 definitions、notations 或其他 concepts,也不應該因為「概念很多」就直接選 Concept Map。
修完 selection rule 之後,我又拿同一份 Laplace PDF 再跑一次。
這次終於重新選回:

流程變成:
Given ODE / initial value problem
↓
apply Laplace transform
↓
Transform into an algebraic subsidiary equation
↓
Solve by algebraic manipulations
↓
apply inverse transformation
↓
Transform back to obtain the original-problem solution
這樣就合理多了。
所以到 Day 8 結束時,我現在有三個固定測試:
三相感應馬達 vs 同步馬達
→ Comparison
Sinusoids
→ Concept Map
Laplace Transform
→ Visual Flow
這三份剛好代表三種不同教材結構。

做到現在,整個邏輯已經從最早的:
教材
↓
Relationships
↓
全部畫成 Flow
慢慢變成:
教材
↓
AI 理解內容
↓
判斷主要學習結構
├─ Process
│ ↓
│ Flow
│
├─ Concept Network
│ ↓
│ Concept Map
│
└─ Comparison
↓
Comparison Table
而 Relationships 還是另外保留。
這件事我現在越來越確定是對的。
因為 Relationships 的用途是:
告訴我內容裡有哪些語意關係。
但 visualization 的用途是:
選出最適合人類理解這份教材的結構。
兩者不應該是同一件事。
表面上今天只是多了一個比較表。
但我覺得真正有意思的是,Visual Learning Lab 開始需要做「取捨」。
同一份教材可能同時可以畫:
Flow
Concept Map
Comparison
但 primary visualization 只能先選一個。
所以 AI 現在不只是要知道:
「這些內容彼此有什麼關係?」
還要開始回答:
「如果只能先給學生看一種圖,哪一種最有幫助?」
目前當然還很早。
現在也只有三種 renderer。
但至少到今天,我已經不再是:
做了一個新圖表,所以拿所有教材來測它。
而是開始反過來:
先看教材需要什麼,再決定要不要用它。
目前 Visual Learning Lab 已經可以:
PDF 文字理解 ✓
PDF 視覺內容理解 ✓
Source Page ✓
Visual Evidence ✓
Visual Flow ✓
Concept Map ✓
Comparison ✓
自動選擇主要視覺化 ✓
下一步我想開始處理另一個問題。
現在 AI 已經可以幫我把教材整理得比較好懂。
但如果我看到其中某一句,還是看不懂呢?
我不想再把那句話複製出去、重新開 AI、重新解釋上下文。
如果可以直接在教材裡點一下:
Explain this
然後它就知道我現在卡在哪裡。
那好像才真的開始有一點「互動式學習工具」的感覺。
GitHub Repo:
https://github.com/f24131128-lgtm/visual-learning-lab